import { Component, OnInit } from '@angular/core';
import { JsonApiService } from "app/core/api/json-api.service"; //http请求配置引入
import { Router, ActivatedRoute } from "@angular/router"; //路由引入
import { config } from '../../shared/smartadmin.config';

declare var $: any;
@Component({
	selector: 'sa-deviceSensor',
	templateUrl: './deviceSensor.component.html',
})
export class DeviceSensorComponent implements OnInit {
	tableData:any[] = []; //table数据
	totalCount:number = 0; //分页总条数
	curPage:number = 1; //分页当前页
	pageSize:number = 10; //内置的分页每页条数
	searchKey:string = '';
	deviceId:string = '';
	carNumber:string = '';
	dateType:string = 'offlineTime';
	sortField:string = '';		//排序
	sensorStatus:string|number = '';		//传感器状态，0无损坏，1有损坏
	selectedCompanyId:string = '';
	selectedCompanyName:string = '';
	startTime:string = '';//table时间控件
	endTime:string = '';//table时间控件
	startTime_chart:string = '';//ehart折线图时间控件
	endTime_chart:string = '';//ehart折线图时间控件
	selectedRow:any;//选中的row数据
	isChartView = false;
	isMapView = false;
	drawTrackArr:any;//画轨迹的数据
	specifyId = {
		picker1:'datetimepicker3',
		picker2:'datetimepicker4'
	};
	specifyTime = {
		startTime:'',
		endTime:'',
	};
	activeSelected:string = '';//当前选择的row数据
	constructor(private jsonApiService: JsonApiService, private router: Router, private activatedRoute: ActivatedRoute ) {
		activatedRoute.queryParams.subscribe(queryParams => {
			this.curPage = queryParams.nowPage||1;
		});
	}
	//折线图时间回调事件
	getSelectChartTime(time){
		this.startTime_chart = time.startTime;
		this.endTime_chart = time.endTime;
	}
	//时间change回调
	getSelectTableTime(val){
		this.startTime = val.startTime;
		this.endTime = val.endTime;
	} 
	ngOnInit(){
		this.load();
	}
	runParent(value){
	   this.drawTrackArr = value;
	}
	showMapView(val){
		this.isMapView = val;
	}
	// 关闭图标
	closeChart():void{
		this.isChartView = false;
	}
	//数据查看
	drawAbnormalChart(){
		if(!this.selectedRow){
			this.jsonApiService.message('先选择需要查看折线图的车辆');
			return;
		}
		if(!this.startTime_chart||!this.endTime_chart){
			this.jsonApiService.message('时间不能为空');
			return;
		}
		let timeCheck = common.correctTimeParams(this.startTime_chart,this.endTime_chart,0);
		if(!timeCheck.status){
			this.jsonApiService.message(timeCheck.message);
			return;
		}
		let params = {
			deviceId:this.selectedRow.deviceId,
			startTime:this.startTime_chart,
			endTime:this.endTime_chart,
			coefficient:this.selectedRow.currentCoef,
		}
		this.selectedRow = params;
	}
	checkAbnormal(row:any){
		// row.startTime = row.offlineTime;
		row.endTime = row.updateTime;
		const emptyLoadToS = common.mmsstoTimestamp(row.updateTime);
		row.startTime = common.getTimeMmss(new Date(emptyLoadToS-2*24*60*60*1000));
		// row对象新增属性
		this.activeSelected = row.id;
		this.startTime_chart = row.startTime;
		this.endTime_chart = row.endTime;
		this.isChartView = true;
		row.coefficient = row.currentCoef;
		this.specifyTime = {
			startTime:this.startTime_chart, 
			endTime:this.endTime_chart,
		}
		this.selectedRow = row;
	}
	//table刷新
    refresh(){
    	this.load();
    }
	//表格搜索
	table_search(){
		this.curPage = 1;
		this.load();
	}
	//初始化加载list数据
	load(){
		let timeCheck = common.correctTimeParams(this.startTime,this.endTime,0);
		if(!timeCheck.status){
			this.jsonApiService.message(timeCheck.message);
			return;
		}
		let data = {
			pageSize:this.pageSize,
			nowPage:this.curPage,
			parameters:{
				companyId:this.selectedCompanyId,
				deviceId:this.deviceId,
				dateType:this.dateType,
				sortField:this.sortField,		//排序
				startTime:this.startTime,
				endTime:this.endTime,
				sensorStatus:this.sensorStatus,			//新增传感器状态参数
				searchKey:common.stringTrim(this.searchKey)
			}
		}
		let reqdata = 'gridPager='+JSON.stringify(data);
		this.jsonApiService.http("sensormonitor/deviceSensorForPage.html", reqdata).subscribe(data => {
			if(data.isSuccess){
				this.tableData = data.exhibitDatas;
				this.totalCount = data.recordCount;
				for(let item of data.exhibitDatas){
					if(item.coef){
						let coefArr = [];
						for (let i = 0;i < item.coef.length; i++){
							let _item = item.coef[i];
							if(_item == 1){
								let obj:any = {
									value:'损坏',
									index:i+1
								}
								coefArr.push(obj);
							}
						}
						item.coefT = coefArr;
					}else{
						item.coefT = [];
					}
					if(item.currentCoef){
						let currentCoef = [];
						for (let i = 0;i < item.currentCoef.length; i++){
							let _item = item.currentCoef[i];
							if(_item){
								let obj:any = {
									value:item.currentCoef[i],
									index:i+1
								}
								currentCoef.push(obj);
							}
						}
						item.currentCoefT = currentCoef;
					}else{
						item.currentCoefT = [];
					}
				}
			}else{
				this.jsonApiService.message(data.message);
			}
		})
	}
	//合同删除
	delRow(row){
		this.jsonApiService.confirm_message("此操作将永久删除数据,确认要删除?").then(()=>{
			this.jsonApiService.http("sensormonitor/deleteForSensorCoef.html",'id='+row.id).subscribe(data=>{
				this.jsonApiService.message(data.message);
				if(data.success){
					this.load();
				}
			})
		})
	}
	//分页回调
	paginate(e){
		this.curPage = e.page+1;
		this.pageSize = e.rows;
		this.load();
	}
	//公司选中回调
	companySelected(data){
		this.selectedCompanyId = data.companyId;
		this.selectedCompanyName = data.companyName;
		this.deviceId = data.deviceId;
		this.carNumber = data.carNumber;
	}
	// 导出表格
	exportTable(){
		var param = {
			companyId:this.selectedCompanyId,
			deviceId:this.deviceId,
			dateType:this.dateType,
			sortField:this.sortField,		//排序
			startTime:this.startTime,
			endTime:this.endTime,
			sensorStatus:this.sensorStatus,			//新增传感器状态参数
			searchKey:common.stringTrim(this.searchKey)
		};
		let timeCheck=common.correctTime(param, ['dateType']);
		if(!timeCheck.status){
			this.jsonApiService.message(timeCheck.message);
			return;
		}
		common.exprotDataFile(param, 'param', config.BaseURL + 'sensormonitor/exportDeviceSensorDetail.html')
	}
}